package es.uned.ii.si3.web.actions;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import es.uned.ii.si3.Constantes;
import es.uned.ii.si3.business.GestionPropuestas;
import es.uned.ii.si3.model.Profesor;
import es.uned.ii.si3.model.Propuesta;
import es.uned.ii.si3.model.TipoPfc;
import es.uned.ii.si3.model.Usuario;
import es.uned.ii.si3.util.UserAgentDetector;
import es.uned.ii.si3.web.actions.generic.LoginRequiredAction;
import es.uned.ii.si3.web.forms.CrearPropuestaSubmitForm;


public class CrearPropuestaSubmitAction extends LoginRequiredAction {
    public ActionForward executeWithAccess(ActionMapping mapping, ActionForm form,
                                 HttpServletRequest request,
                                 HttpServletResponse response) {
    	
    	UserAgentDetector uaDetector = new UserAgentDetector(request);
    	
    	GestionPropuestas gestionPropuestas = new GestionPropuestas();
    	CrearPropuestaSubmitForm propuestaForm = (CrearPropuestaSubmitForm) form;
    	
    	int idUsuario = -1;
		Object oUsuario = request.getSession().getAttribute(Constantes.SESSION_USER_INFO);
		if ((oUsuario != null) && (oUsuario instanceof Usuario)) {
			Usuario usuario = (Usuario) oUsuario;
			idUsuario = usuario.getIdUsuario();
		}
    	
    	String titulo = propuestaForm.getTitulo();
    	String objetivos = propuestaForm.getObjetivos();
    	String descripcion = propuestaForm.getDescripcion();
    	String conocimientos = propuestaForm.getConocimientos();
    	int anoAcademico = propuestaForm.getAnoAcademico();
    	TipoPfc tipoPfc = new TipoPfc();
    	tipoPfc.setIdTipoPfc(propuestaForm.getTipo());
    	Profesor profesor = new Profesor();
    	profesor.setIdUsuario(idUsuario);
    	
    	Propuesta propuesta = new Propuesta(0, profesor, tipoPfc, titulo, objetivos, descripcion, conocimientos, anoAcademico);
    	
    	if (gestionPropuestas.insert(propuesta)) {
    		return mapping.findForward(uaDetector.composeForward(Constantes.SUCCESS));
    	} else {
    		return mapping.findForward(uaDetector.composeForward(Constantes.FAILURE));
    	}
    }
    
}
